package net.alan.modules.service;

import net.alan.modules.bean.PageModel;
import net.alan.modules.bean.Result;
import net.alan.modules.bean.Task;
import net.alan.modules.bean.TaskComment;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * Author 李岩飞
 * Email eliyanfei@126.com
 * 2017/11/21
 */
public interface ITaskService extends IBaseService {
    /**
     * 根据用户和组信息获取任务
     *
     * @param userId
     * @param pageModel
     * @return
     */
    Page<Task> findTask(Integer userId, Integer projectId, PageModel pageModel);

    /**
     * 根据任务Id获取任务评论
     *
     * @param taskId
     * @param pageModel
     * @return
     */
    Page<TaskComment> findTaskCommentByTaskId(Integer taskId, PageModel pageModel);

    /**
     * 保存任务
     * @param task
     * @return
     */
    Result saveTask(Task task);

    /**
     * 结束任务
     *
     * @param id
     * @return
     */
    Result endTask(Integer id);

    /**
     * 删除任务
     *
     * @param id
     * @return
     */
    Result deleteTask(Integer id);

    /**
     * 删除任务资料
     *
     * @param id
     * @return
     */
    Result deleteTaskComment(Integer id);

    /**
     * 统计项目任务信息
     */
    List<Object[]> statTask(Integer projectId);

    List<Object[]> statList(Integer projectId);
}
